// Learn TypeScript:
//  - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

import { Login_Status } from "../constants/ui_def";
import { common } from "../login/common";
import { Sdk_Platform } from "./constants";
import { gg } from "./gg";
import { he } from "./he";

const { ccclass, property } = cc._decorator;

@ccclass
export class user extends cc.Component {

    updateManager() {
        switch (common.sdk_env) {
            case Sdk_Platform.WECHAT:

                break
            case Sdk_Platform.VIVO:
                // qg.onUpdateReady(function (res) {
                //     if (res == 1) {
                //         qg.applyUpdate();
                //     }
                // });
                // he.db.init()
                break
            case Sdk_Platform.OPPO:
            case Sdk_Platform.BYTEDANCE:
            case Sdk_Platform.HUAWEI:
            default:
                he.Db.init()
                break
        }
    }
    // 登录流程更改
    // 直接向服务端获取数据 =》 服务端检测openid =》 检测存档是否存在 =》 覆盖本地存档
    login() {
        let uid = he.Local.get('uid', 'user')
        if (!uid) {
            uid = 0
        }
        console.log('登陆,获取服务器数据')
        switch (common.sdk_env) {
            case Sdk_Platform.F_4399:

                break
            case Sdk_Platform.WECHAT:

                break
            case Sdk_Platform.OPPO:

                break
            case Sdk_Platform.VIVO:
                // if (common.isTest) {
                //     this.checkLocalInit()
                //     gg.eventManager.emit('login', Login_Status.LOGIN_SUCCESS)
                // } else {
                //     cloud.callFunction({
                //         name: 'login',
                //         data: { uid: uid, platform: common.sdk_env }
                //     }).then(res => {
                //         //临时使用测试
                //         he.local.click('login_first')
                //         if (res.result) {
                //             he.local.setJson('user', res.result)
                //             he.local.set('local_dida', res.result.last_time_stamp - new Date())
                //             gg.eventManager.emit('login', Login_Status.LOGIN_SUCCESS)
                //         } else {
                //             gg.eventManager.emit('login', Login_Status.LOGIN_FAIL)
                //         }
                //     }).catch(err => {
                //         console.log(err)
                //         he.error(err)
                //         gg.eventManager.emit('login', Login_Status.LOGIN_FAIL)
                //     })

                // }
                break
            case Sdk_Platform.BYTEDANCE:

                break
            case Sdk_Platform.HUAWEI:

                break
            case Sdk_Platform.DEBUG:
                // 本地环境
                console.log("测试环境中")
                if (common.isTest) {
                    this.checkLocalInit()
                    cc.director.emit('login', Login_Status.LOGIN_SUCCESS)
                } else {
                    // cloud.callFunction({
                    //     name: 'login',
                    //     data: { uid: uid, platform: common.sdk_env }
                    // }).then(res => {
                    //     //临时使用测试
                    //     console.log(res)
                    //     he.local.click('login_first')
                    //     if (res.result) {
                    //         he.local.setJson('user', res.result)
                    //         he.local.set('local_dida', res.result.last_time_stamp - new Date())
                    //         gg.eventManager.emit('login', Login_Status.LOGIN_SUCCESS)
                    //     } else {
                    //         gg.eventManager.emit('login', Login_Status.LOGIN_FAIL)
                    //     }
                    // }).catch(err => {
                    //     console.log(err)
                    //     he.error(err)
                    //     gg.eventManager.emit('login', Login_Status.LOGIN_FAIL)
                    // })
                }


                break
        }
    }
    // 本地初始化
    checkLocalInit() {
        let oldUser = he.Local.get('old', 'user')
        if (!oldUser) {
            let userInfo = {
                old: true,
                pass_list: [],
                bag: {},
            }
            he.Local.setJson('user', userInfo, null)
        }
    }
    // 储存游戏数据 在onhide处使用
    saveInfo() {
        let user = he.Local.getJson('user', null)
        switch (common.sdk_env) {
            case Sdk_Platform.F_4399:
                break
            case Sdk_Platform.OPPO:

                break
            case Sdk_Platform.BYTEDANCE:

            case Sdk_Platform.VIVO:
                // if (common.isTest) {
                // } else {
                //     cloud.callFunction({
                //         name: 'save',
                //         data: user
                //     }).then(res => {
                //         //测试使用 记得删除
                //         he.local.click('save_first')
                //         he.log(res)
                //     }).catch(err => {
                //         he.error(err)
                //     })
                // }
                break
            case Sdk_Platform.HUAWEI:

                break
            case Sdk_Platform.WECHAT:

                break
            case Sdk_Platform.DEBUG:
                console.log("你切换了页面，但我并没有保存数据")
                break
        }
    }


}
